let a = 10;

/*
    在node中有一个全局对象 global，它的作用和网页中的 window 类似
    在全局中创建的变量都会作为 global 的属性保存
    在全局中创建的函数都会作为 global 的方法保存
 */

//console.log(a);
//console.log(global.a);

/*
    arguments  函数里才有的属性
    arguments.callee 这个属性保存的是当前执行的函数对象
 */
console.log(arguments);
console.log(arguments.callee + "");

/*
    当node执行模块中的代码时，它会首先在代码的最顶部，添加如下代码
        function (exports, require, module, __filename, __dirname) {
    在代码的最底部添加
        }

    实际上模块中的代码都是包装在一个函数中执行的，并且在函数执行时，同时传递了五个实参
    exports, require, module, __filename, __dirname

 */